home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / mus / play / tracker_3_19.lzh / tracker / setup_audio.c < prev    next >
C/C++ Source or Header  |  1993-11-17  |  2KB  |  89 lines

  1. /* setup_audio.c */
  2. /* higher level interface to the raw metal */
  3.  
  4. /* $Id: setup_audio.c,v 3.5 1993/11/17 15:31:16 espie Exp espie $
  5.  * $Log: setup_audio.c,v $
  6.  * Revision 3.5  1993/11/17  15:31:16  espie
  7.  * New high-level functions.
  8.  *
  9.  * Revision 3.4  1992/11/27  10:29:00  espie
  10.  * General cleanup
  11.  *
  12.  * Revision 3.3  1992/11/24  10:51:19  espie
  13.  * Added check before closing for the sgi.
  14.  *
  15.  * Revision 3.1  1992/11/20  14:53:32  espie
  16.  * Added finetune.
  17.  *
  18.  * Revision 3.0  1992/11/18  16:08:05  espie
  19.  * New release.
  20.  *
  21.  */
  22.  
  23.  
  24. #include <stdio.h>
  25. #include <stdlib.h>
  26. #include <string.h>
  27.  
  28. #include "defs.h"
  29. #include "extern.h"
  30.  
  31. LOCAL char *id = "$Id: setup_audio.c,v 3.5 1993/11/17 15:31:16 espie Exp espie $";
  32.  
  33.  
  34. LOCAL BOOL opened = FALSE;
  35. LOCAL int ask_freq, real_freq, oversample;
  36. LOCAL BOOL stereo;
  37.  
  38. /* setup_audio(frequency, stereo, oversample, sync):
  39.  * try to avoid calling open_audio and other things
  40.  * all the time
  41.  */
  42. void setup_audio(f, s, o, sync)
  43. int f;
  44. BOOL s;
  45. int o;
  46. BOOL sync;
  47.     {
  48.  
  49.     if (!opened)
  50.         {
  51.         ask_freq = f;
  52.         stereo = s;
  53.         oversample = o;
  54.         real_freq = open_audio(f, s);
  55.         init_player(o, real_freq);
  56.         opened = TRUE;
  57.         }
  58.     else
  59.         {
  60.         int new_freq;
  61.  
  62.         if (s != stereo || f != ask_freq)
  63.             {
  64.             ask_freq = f;
  65.             stereo = s;
  66.             close_audio();
  67.             new_freq = open_audio(f, s);
  68.             }
  69.         else
  70.             new_freq = real_freq;
  71.  
  72.         if (new_freq != real_freq || oversample != o)
  73.             {
  74.             real_freq = new_freq;
  75.             oversample = o;
  76.             init_player(o, real_freq);
  77.             }
  78.         }
  79.     set_synchro(sync);
  80.     }
  81.  
  82. void do_close_audio()
  83.     {
  84.     if (opened)
  85.         close_audio();
  86.     opened = FALSE;
  87.     }
  88.  
  89.